package fachada;

import java.util.List;

import classes.Assinatura;
import classes.Cliente;
import classes.Contato;
import classes.Contrato;
import classes.EmpresaCliente;
import classes.Funcionario;
import classes.Produto;

public interface IFachada {
	//Assinatura
	void inserirAssinatura(Assinatura assinatura)throws Exception;
	void removerAssinatura(Assinatura assinatura)throws Exception;
	void atualizarAssinatura(Assinatura a)throws Exception;
	List<Assinatura> listarAssinaturas() throws Exception;
	Assinatura consultarAssinaturaPorId(long id)throws Exception;
	
	//Cliente
	void inserirCliente(Cliente cliente)throws Exception;
	void removerCliente(Cliente cliente)throws Exception;
	void atualizarCliente(Cliente c)throws Exception;
	List<Cliente> consultarTodosCliente() throws Exception;
	Cliente consultarClientePorId(long id)throws Exception;
	
	//Contato
	void inserirContato(Contato contato)throws Exception;
	void removerContato(Contato contato)throws Exception;
	void atualizarContato(long id)throws Exception;
	List<Contato> consultarTodosContato() throws Exception;
    Contato consultarContatoPorId(long id)throws Exception;
	
	//Contrato
	void inserirContrato(Contrato contrato)throws Exception;
	void removerContrato(Contrato contrato)throws Exception;
	void atualizarContrato(long id)throws Exception;
	List<Contrato> consultarTodosContrato() throws Exception;
	Contrato consultarContratoPorId(long id)throws Exception;
	
	//EmpresaCliente
    void inserirEmpresaCliente(EmpresaCliente empresaCliente)throws Exception;
	void removerEmpresaCliente(EmpresaCliente empresaCliente)throws Exception;
	void atualizarEmpresaCliente(long id)throws Exception;
	List<EmpresaCliente> consultarTodosEmpresaCliente() throws Exception;
	EmpresaCliente consultarEmpresaClientePorId(long id)throws Exception;
	
	//Funcionario
	void inserirFuncionario(Funcionario funcionario)throws Exception;
	void removerFuncionario(long id)throws Exception;
	void atualizarFuncionario(Funcionario f)throws Exception;
	List<Funcionario> consultarTodosFuncionario() throws Exception;
	Funcionario consultarFuncionarioPorId(long id)throws Exception;
	
	//Produto
	void inserirProduto(Produto produto)throws Exception;
	void removerProduto(Produto produto)throws Exception;
	void atualizarProduto(long id)throws Exception;
	List<Produto> consultarTodosProduto() throws Exception;
	Produto consultarProdutoPorId(long id)throws Exception;
	
}
